FIG. 11 is a block diagram of a prior art data transfer system.
As will be described with reference to FIG. 11, the prior art data transfer system comprises a first disk array 150 comprising storages 110 and 120 which contain data to be transferred; a second disk array 250 comprising storages 210 and 220 which contain data to be transferred; a first data transfer unit 100 which comprises a buffer memory 170 temporarily accumulating the data to be transferred which are stored in the storages 110 and 120, a storage controller 160 reading out the data to be transferred which are stored in the storages 110 and 120 to store the read-out data to be transferred in the buffer memory 170, and a data sending unit 180 transferring the data stored in the buffer memory 170 to terminals 510, 520, 530 and 540; a second data transfer unit 200 which comprises a buffer memory 270 temporarily accumulating the data to be transferred which are stored in the storages 210 and 220, a storage controller 260 reading out the data to be transferred which are stored in the storages 210 and 220 to store the read-out data to be transferred in the buffer memory 270, and a data sending unit 280 transferring the data stored in the buffer memory 270 to terminals 510, 520, 530 and 540; a read request receiving unit 600 which receives request-to-read-datas from the terminals 510, 520, 530 and 540; a write request receiving unit 610 which receives request-to-write-datas from the terminals 510, 520, 530 and 540: a data transfer controller 700 which controls the data transfer units 100 and 200; and a network switching unit 800 which connects the data transfer units 100 and 200 to the terminals 510, 520, 530 and 540, and which connects the read request receiving unit 600 and the write request receiving unit 610 to the terminals 510, 520, 530 and 540.
In this case, the storages 110, 120, 210 and 220 each can read out "256 KB" data in a cycle; the disk arrays 150 and 250 each can read out "512 KB" data in a cycle; and the data sending units 180 and 280 each can send "512 KB" data in a cycle.
FIG. 12 is a diagram showing the data configuration of files in the prior art data transfer system.
In FIG. 12, a file A is divided into blocks each having "256 KB" size; a1 indicates the first block; a2 indicates the second block; a3 indicates the third block.
Note that files B, C and D have the same configuration as that of the file A.
For example, when the file A will be stored in the system, the block a1 is stored in the first disk array 150, and the block a2 is then stored in the second disk array 250, and the block a3 is then stored in the first disk array 150, and thereafter the remaining blocks are similarly stored alternately in the disk array 150 and in the disk array 250 one after another.
FIG. 13 is a time chart of the prior art data transfer system when the terminals 510, 520, 530 and 540 each require reading out "256 KB" data of the respective files A, B, C and D in a cycle.
Referring to FIG. 13, the processing when the terminal 510 requires reading out the data of the file A is described as follows.
(1) At period 1, the storage controller 160 of the first data transfer unit 100 reads the block a1 out of the first disk array 150 and then stores the block a1 in the buffer memory 170.
(2) At period 2, the data sending unit 180 of the first data transfer unit 100 sends the block a1, which is stored in the buffer memory 170, to the terminal 510 via the network switching unit 800. Meanwhile, the storage controller 260 of the second data transfer unit 200 reads the block a2 out of the second disk array 250 and then stores the block a2 in the buffer memory 270.
(3) At period 3, the data sending unit 280 of the second data transfer unit 200 sends the block a2, which is stored in the buffer memory 270, to the terminal 510 via the network switching unit 800. Meanwhile, the storage controller 160 of the first data transfer unit 100 reads the block a3 out of the first disk array 150 and then stores the block a3 in the buffer memory 170.
Thereafter, the remaining data of the file A are similarly processed alternately by the data transfer unit 100 and by the data transfer unit 200 every cycle according to the request-to-read-data of the terminal 510.
Note that the data of the files B, C and D are similarly processed according to the request-to-read-datas of the terminals 520 to 540.
As described above, since the data transfer units 100 and 200 each can read 512 KB data from the respective storages to send the data to the terminal in a cycle, the request-to-read-datas of only the two terminals can be processed in a cycle, but if the data transfer units 100 and 200 are switched alternately every cycle, the request-to-read-datas of the four terminals can be processed. Therefore, the request-to-read-datas of a lot of terminals can be processed when the number of the data transfer units is increased.
FIG. 15 is a time chart of the prior art data transfer system when the terminal 510 requires writing "256 KB" data of the file A in a cycle, and the terminals 520, 530 and 540 each require reading out "256 KB" data of the respective files B, C and D in the cycle.
Referring to FIG. 15, the processing when the terminal 510 requires writing the data of the file A is described as follows.
(1) At period 2, the write request receiving unit 610 receives request-to-write for the data, the block a1, from the terminal 510, and then stores the block a1 in the buffer memory 170 of the first data transfer unit 100.
(2) At period 3, the storage controller 160 of the first data transfer unit 100 writes the block al, which is stored in the buffer memory 170, into the first disk array 150. Meanwhile, the write request receiving unit 610 receives request-to-write for the data, the block a2, from the terminal 510, and then stores the block a2 in the buffer memory 270 of the second data transfer unit 200.
(3) At period 4, the storage controller 260 of the second data transfer unit 200 writes the block a2, which is stored in the buffer memory 270, into the second disk array 250. Meanwhile, the write request receiving unit 610 receives request-to-write for the data, the block a3, from the terminal 510, and then stores the block a3 in the buffer memory 170 of the first data transfer unit 100.
Thereafter, the remaining data of the file A are similarly processed alternately by the data transfer unit 100 and by the data transfer unit 200 every cycle, responding to the request-to-write of the terminal 510.
As described above, the prior art data transfer system includes a plurality of data transfer units and assigns alternately request-to-read or request-to-write to the data transfer units every cycle in order to read out data and write data according to the requests of a lot of terminals. This prior art data transfer system is disclosed by Japanese Patent Published Application No. Hei 7-64733 (1995).
In the above-described prior art data transfer system, when a terminal has the variable rate of request-to-read or request-to-write, or terminals have different processing rates, the load (usage ratio) of the data sending process is adversely concentrated on a particular data transfer unit beyond its performance, or the load (usage ratio) of read or write process is adversely concentrated on a disk array beyond its performance.
The details of the above-mentioned problems are described as follows, referring to FIG. 14 and FIG. 16.
FIG. 14 is a time chart of the prior art data transfer system when the terminal 510 has the rate of the request-to-read-data of the file A different from those of other terminals.
While the terminals 520 to 540 each require reading "256 KB" data in a cycle, only the terminal 510 requires reading, for example, "200 KB" data in a cycle in order to perform the slow reproduction process.
(1) At period 2, the terminal 510 requires reading first "200 KB" data of the file A which corresponds to the first half of the block a1. Thereafter, the data sending unit 180 of the first dated transfer unit 100 sends the "200 KB" data corresponding to the first half of the block a1 to the terminal 510, and then sends the block b1 to the terminal 520. In this case, the amount of the send data accounts for "200 KB+256 KB=456 KB", which can be sent during the period 2. Meanwhile, the data sending unit 280 of the second data transfer unit 200 sends the block c1 to the terminal 530, and then sends the block d1 to the terminal 540. In this case, the amount of the send data accounts for "256 KB.times.2=512 KB", which can be sent during the period 2.
(2) At period 3, the terminal 510 requires reading the next "200 KB" of the file A, namely "56 KB" corresponding to the latter half of the block a1 and "144 KB" corresponding to the first half of the block a2. Thereafter, the data sending unit 180 of the first data transfer unit 100 sends the "56 KB" corresponding to the latter half of the block a1 to the terminal 510, and then sends the block c2 to the terminal 530, and then sends the block d2 to the terminal 540. In this case, the amount of the send data accounts for "56 KB+256 KB.times.2=568 KB", which exceeds "512 KB" which is the size of the data which can be sent in a cycle, so that the entire data can not be sent during the period 3. Meanwhile, the data sending unit 280 of the second data transfer unit 200 sends "144 KB" corresponding to the first halt of the block a2 to the terminal 510, and then sends the block b2 to the terminal 520. In this case, the amount of the send data accounts for "144 KB+256 KB-400KB", which can be sent during the period 3.
As described above, when the rate of the requcrt-to-read-data of the terminal 510 is different from those of the other terminals, the load of sending data to the terminals 510, 530 and 540 is concentrated on the data sending unit 180 of the first data transfer unit 100, so that the load can not be completely processed in a cycle at the period 3.
Further, FIG. 16 is a time chart of the prior art data transfer system when the rate of the request-to-write-data of the terminal 510 for the file A is different from those of the other terminals.
While the terminals 520 to 540 each require reading "256 KB" data in a cycle, the terminal 510 requires writing "200 KB" data in a cycle.
(1) At period 2, the terminal 510 requires writing the first "200 KB" data or the file A which corresponds to the first half of block a1. Thereafter, the write request receiving unit 610 receives the request-to-write for the "200 KB" data corresponding to the first half of the block a1 from the terminal 510, and then stores the data in the buffer memory 170 of the first data transfer unit 100.
(2) At period 3, the terminal 510 requires writing The next "200 KB" of the file A, namely "56 KB" corresponding to the latter half of the block a1 and "144 KB" corresponding to the first half of block a2. Thereafter, the write request receiving unit 610 receives the request-to-write for the "56 KB" data corresponding to the latter half of the block a1 and the "144 KB" data corresponding to the first half of the block a2, and then stores the "56 KB" data corresponding to the latter half of the block a1 in the buffer memory 170 of the first data transfer unit 100, and then stores the "144 KB" data corresponding to the first half of the block a2 in the buffer memory 270 of the second data transfer unit 200.
(3) At period 4, the block a1 is stored in the buffer memory 170 of the first data transfer unit 100 by the period 3, so that the storage controller 160 of the first data transfer uiit 100 writes the block a1, which is stored in the buffer memory 170, to the first disk array 150. Meanwhile, the storage controller 160 of the first data transfer unit 100 reads the block c4 and the block d4 out of the first disk array 150 in response to the request-to leads of the terminals 530 and 540. In this case, the amount of both the read data and the write date accounts for "256 KB.times.3=768KB", which exceeds "512 BK" which is the size of the data which can be read out and written in the first disk array 150 in a cycle, so that the processes of reading out and writing the data to the first disk array 150 can not be completed during the period 4.
As described above, when the rate of the request-to-write-data of the terminal 510 is different from those of the other terminals, the load of data read and data write of the terminals 510, 530 and 540 to the first disk array 150 is concentrated on the first data transfer unit 100, so that the load can not be completely processed in a cycle at the period 4.